﻿Imports EIBWatcherNet.Core.EIB.Bus.Addressing

Namespace EIB.Bus
    Public Enum EIBBusAccessLogReason As Byte
        IncomingMessage = 0
        OutgoingMessage = 1
        Information = 250
        [Error] = 251
    End Enum

    Public Interface IEIBBusAccessModule

        Function OpenConnection(ParamArray params() As Object) As Boolean
        Sub CloseConnection()

        ReadOnly Property IsConnected As Boolean

        Event LogBusData(reason As EIBBusAccessLogReason, message As String, data As Byte())
        Event ReceiveBusData(address As EIBAddress, value As Byte())

        Function ResetBCU() As Boolean
        Sub GetLinkStatus()

        Sub ReadBusData(address As EIBGroupAddress)
        Sub RespondBusData(address As EIBGroupAddress, value As Byte())
        Sub WriteBusData(address As EIBGroupAddress, value As Byte())
    End Interface
End Namespace